Database, Tables, Partitions, এবং Buckets গাইড ও নোট

Big Data and Analytics - হাইভ (Hive) - Hive Data Model
367

Apache Hive, Hadoop এর উপরে তৈরি একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS), যা বড় ডেটাসেটের জন্য কার্যকরী বিশ্লেষণ এবং ডেটা স্টোরেজ প্রক্রিয়া সহজ করে তোলে। Hive বিভিন্ন ডেটা স্টোরেজ পদ্ধতি এবং সংরক্ষণ কাঠামো সরবরাহ করে, যার মধ্যে Database, Tables, Partitions, এবং Buckets অন্তর্ভুক্ত। এই ধারণাগুলোর মাধ্যমে Hive ডেটাকে আরও ভালোভাবে সংগঠিত এবং পরিচালনা করতে সাহায্য করে।

Database


Hive-এ Database হল একটি লজিক্যাল কাঠামো যা টেবিল এবং তাদের মেটাডেটার সংগঠন ও বিভাজন করতে ব্যবহৃত হয়। Hive-এ একটি ডেটাবেসের মধ্যে একাধিক টেবিল থাকতে পারে, যা ডেটা সংরক্ষণ এবং পরিচালনার জন্য ব্যবহৃত হয়।

  • Hive-এ একাধিক ডেটাবেস তৈরি করা সম্ভব, এবং প্রতিটি ডেটাবেসের মধ্যে আলাদা টেবিল থাকতে পারে।
  • ডেটাবেস ব্যবহারের মাধ্যমে ডেটাকে বিভিন্ন প্রকল্প বা বিভাগের মধ্যে ভাগ করা যায়।

উদাহরণ:

CREATE DATABASE SalesDB;

এটি একটি নতুন ডেটাবেস SalesDB তৈরি করবে।

Tables


Hive-এ Tables হল ডেটা সংরক্ষণের জন্য প্রধান কাঠামো। একটি টেবিল তৈরি করার সময়, এটি নির্দিষ্ট কলাম এবং তাদের ডেটা টাইপের সমন্বয়ে গঠিত হয়। Hive-এ টেবিল দুটি প্রধান ধরনের হতে পারে: Managed Table এবং External Table

  • Managed Table: এই ধরনের টেবিলের ডেটা Hive দ্বারা সম্পূর্ণভাবে পরিচালিত হয়। যখন টেবিলটি ড্রপ করা হয়, তখন টেবিলের ডেটাও মুছে ফেলা হয়।
  • External Table: এই ধরনের টেবিলের ডেটা Hive দ্বারা পরিচালিত হয় না, বরং এটি বাইরের একটি ফাইল সিস্টেমের অংশ হতে পারে। যখন এই টেবিলটি ড্রপ করা হয়, তখন শুধু টেবিলের স্কিমা মুছে যায়, ডেটা থাকে।

উদাহরণ:

CREATE TABLE employee (
    id INT,
    name STRING,
    department STRING
);

এটি একটি সাধারণ employee টেবিল তৈরি করবে।

Partitions


Hive-এ Partitions হল টেবিলের একটি লজিক্যাল বিভাজন, যা ডেটাকে ছোট ছোট অংশে ভাগ করে। এটি ডেটা প্রক্রিয়া এবং বিশ্লেষণে পারফরম্যান্স উন্নত করতে সহায়তা করে। প্রতিটি পার্টিশন একটি নির্দিষ্ট কলামের মান অনুযায়ী ডেটাকে ভাগ করে।

  • Partitioning ডেটা স্টোরেজ এবং অনুসন্ধান প্রক্রিয়া দ্রুত করতে সাহায্য করে, কারণ Hive একবারে একটি নির্দিষ্ট পার্টিশন পড়তে পারে।
  • পার্টিশনগুলি সাধারণত সময়, স্থান বা অন্যান্য গুণের ওপর ভিত্তি করে তৈরি করা হয়।

উদাহরণ:

CREATE TABLE sales (
    id INT,
    amount DOUBLE,
    date STRING
)
PARTITIONED BY (year INT, month INT);

এটি sales টেবিলটি year এবং month পার্টিশনের ভিত্তিতে পার্টিশন করবে।

Partitioning এর সুবিধা:

  • পার্টিশনিং ডেটা প্রক্রিয়াকরণ দ্রুত করে, কারণ নির্দিষ্ট পার্টিশন থেকেই ডেটা পড়া হয়।
  • পার্টিশনগুলিকে আলাদা করে সংরক্ষণ করা হয়, তাই ডেটার অ্যাক্সেস দ্রুত এবং আরও কার্যকরী হয়।

Buckets


Hive-এ Buckets হল আরও সূক্ষ্মভাবে ডেটা ভাগ করার একটি পদ্ধতি। পার্টিশনের পরেও, ডেটাকে Buckets এর মধ্যে ভাগ করা যেতে পারে। Bucketing ডেটাকে সমান আকারের ভাগে বিভক্ত করে, এবং এটি সাধারণত কলামের উপর ভিত্তি করে করা হয়।

  • Bucketing প্রক্রিয়া Hive-এর পারফরম্যান্স আরও উন্নত করে, বিশেষ করে যখন একই ধরনের ডেটা বিভিন্ন ভাগে স্টোর করা হয় এবং সেগুলি বিভিন্ন কাজের জন্য ব্যবহৃত হয়।

উদাহরণ:

CREATE TABLE employee (
    id INT,
    name STRING,
    department STRING
)
CLUSTERED BY (department) INTO 4 BUCKETS;

এটি employee টেবিলের department কলামের ওপর ভিত্তি করে ৪টি bucket এ ডেটা ভাগ করবে।

Bucketing এর সুবিধা:

  • Bucketing ডেটাকে আরও সমানভাবে ভাগ করে, যা ডেটা প্রক্রিয়াকরণে পারফরম্যান্স উন্নত করে।
  • এটি ডেটার সংরক্ষণ এবং পারফরম্যান্সের ওপর আরও নিয়ন্ত্রণ প্রদান করে।

Database, Tables, Partitions, এবং Buckets এর সম্পর্ক


  1. Database: ডেটাবেস Hive-এ একটি লজিক্যাল কাঠামো, যেখানে একাধিক টেবিল থাকতে পারে।
  2. Tables: ডেটাবেসের অধীনে টেবিল থাকে, যা ডেটার প্রধান স্টোরেজ।
  3. Partitions: টেবিলের পার্টিশন ডেটাকে আরও ছোট ছোট অংশে ভাগ করে, যা ডেটার অ্যাক্সেস এবং প্রসেসিং দ্রুত করে।
  4. Buckets: পার্টিশন করা ডেটাকে আরও ছোট ভাগে ভাগ করে, যা ডেটার প্রক্রিয়াকরণে আরও বেশি সহায়ক হয়।

উপসংহার


Hive এর Database, Tables, Partitions, এবং Buckets ধারণাগুলি ডেটা সঞ্চয়ন এবং বিশ্লেষণকে আরও কার্যকরী এবং স্কেলেবল করে তোলে। Hive-এর পার্টিশনিং এবং bucketing কৌশলগুলি বিশেষভাবে বড় ডেটাসেটের প্রক্রিয়াকরণের সময় পারফরম্যান্স বৃদ্ধি করে। এটি ডেটা ব্যবস্থাপনা এবং বিশ্লেষণের জন্য একটি শক্তিশালী এবং স্কেলেবল প্ল্যাটফর্ম তৈরিতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...